package com.miyuan.wm.service;

import com.miyuan.wm.request.QueryAccessRecordsRequestVo;
import com.miyuan.wm.request.QueryUserOperationLogsRequestVo;
import com.miyuan.wm.response.PageResponse;
import com.miyuan.wm.response.QueryAccessRecordsResponseVo;
import com.miyuan.wm.response.QueryUserOperationLogsResponseVo;
import org.springframework.web.bind.annotation.RequestBody;

import javax.validation.Valid;
import java.util.List;

/**
 * @ClassName SystemLogService
 * @Description 系统操作日志Service接口
 */
public interface SystemLogService {

    String ACCESS_TYPE_LOGIN = "login";
    String ACCESS_TYPE_LOGOUT = "logout";

    /**
     * @Description 插入用户登入登出记录
     * @param: userId     用户ID
     * @param: userName   用户名
     * @param: accessIP   登陆IP
     * @param: accessType 记录类型
     * @return:
     */
    void insertAccessRecord(int userId, String userName, String accessIP, String accessType);

    /**
     * @Description 插入用户操作记录
     * @param userId             执行操作的用户ID
     * @param userName           执行操作的用户名
     * @param userOperationValue 操作的名称
     * @param invokedResult      操作的记过
     * @return:
     */
    void insertUserOperationRecord(int userId, String userName, String userOperationValue, String invokedResult);

    /**
     * @Description 查询系统登入登出的操作日志
     * @param:
     * @return:
     */
    PageResponse<List<QueryAccessRecordsResponseVo>> listAccessRecordsLog(QueryAccessRecordsRequestVo requestVo);

    /**
     * @Description 查询用户操作日志
     * @param:
     * @return:
     */
    PageResponse<List<QueryUserOperationLogsResponseVo>> listUserOperationLog(QueryUserOperationLogsRequestVo requestVo);
}
